From 6db99a9b8f0eb572ebef2b382c3d29d25fec5626 Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Sat, 18 Jun 2005 12:11:26 +0000 Subject: [PATCH] undo merging of the separate loop setting cell data with cell drawing loop 2005-06-18 Kristian Rietveld * gtk/gtktreeview.c (gtk_tree_view_bin_expose): undo merging of the separate loop setting cell data with cell drawing loop (introduced in revision 1.280), since this breaks focus handling wrt special cells. --- ChangeLog | 7 +++++++ ChangeLog.pre-2-10 | 7 +++++++ ChangeLog.pre-2-8 | 7 +++++++ gtk/gtktreeview.c | 22 ++++++++++++++++------ 4 files changed, 37 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 28bae282d4..5f71919077 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2005-06-18 Kristian Rietveld + + * gtk/gtktreeview.c (gtk_tree_view_bin_expose): undo merging + of the separate loop setting cell data with cell drawing loop + (introduced in revision 1.280), since this breaks focus handling + wrt special cells. + Sat Jun 18 04:22:51 2005 Manish Singh * gdk/gdkcursor.h: remove GDK_CURSOR and GDK_IS_CURSOR, instance diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 28bae282d4..5f71919077 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +2005-06-18 Kristian Rietveld + + * gtk/gtktreeview.c (gtk_tree_view_bin_expose): undo merging + of the separate loop setting cell data with cell drawing loop + (introduced in revision 1.280), since this breaks focus handling + wrt special cells. + Sat Jun 18 04:22:51 2005 Manish Singh * gdk/gdkcursor.h: remove GDK_CURSOR and GDK_IS_CURSOR, instance diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 28bae282d4..5f71919077 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +2005-06-18 Kristian Rietveld + + * gtk/gtktreeview.c (gtk_tree_view_bin_expose): undo merging + of the separate loop setting cell data with cell drawing loop + (introduced in revision 1.280), since this breaks focus handling + wrt special cells. + Sat Jun 18 04:22:51 2005 Manish Singh * gdk/gdkcursor.h: remove GDK_CURSOR and GDK_IS_CURSOR, instance diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index cb63d4df17..8f179bae97 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -3559,6 +3559,22 @@ gtk_tree_view_bin_expose (GtkWidget *widget, parity = _gtk_rbtree_node_find_parity (tree, node); + /* we *need* to set cell data on all cells before the call + * to _has_special_cell, else _has_special_cell() does not + * return a correct value. + */ + for (list = (rtl ? g_list_last (tree_view->priv->columns) : g_list_first (tree_view->priv->columns)); + list; + list = (rtl ? list->prev : list->next)) + { + GtkTreeViewColumn *column = list->data; + gtk_tree_view_column_cell_set_cell_data (column, + tree_view->priv->model, + &iter, + GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_PARENT), + node->children?TRUE:FALSE); + } + has_special_cell = gtk_tree_view_has_special_cell (tree_view); for (list = (rtl ? g_list_last (tree_view->priv->columns) : g_list_first (tree_view->priv->columns)); @@ -3604,12 +3620,6 @@ gtk_tree_view_bin_expose (GtkWidget *widget, continue; } - gtk_tree_view_column_cell_set_cell_data (column, - tree_view->priv->model, - &iter, - GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_PARENT), - node->children?TRUE:FALSE); - /* Select the detail for drawing the cell. relevant * factors are parity, sortedness, and whether to * display rules. -- 2.30.2